/*
 * Provides facilities to get and stock simulations results
 * stock N1, N2, N3, N4, Astrocyte spikes for a couple Gamma/Delta
 */

package IoTools;

import java.util.ArrayList;

/**
 *
 * @author godjam
 */
public class SimResult {
    
    private ArrayList<Integer> N1Spikes;
    private ArrayList<Integer> N2Spikes;
    private ArrayList<Integer> N3Spikes;
    private ArrayList<Integer> N4Spikes;
    private ArrayList<Integer> AstroSpikes;
    private double Gamma = 0, Delta = 0;

    // Constructor = permit to init the SimResult
    public SimResult(ArrayList<Integer> N1, ArrayList<Integer> N2, ArrayList<Integer> N3, ArrayList<Integer> N4,ArrayList<Integer> AS, double G, double D ) {
        N1Spikes    = N1;
        N2Spikes    = N2;
        N3Spikes    = N3;
        N4Spikes    = N4;
        AstroSpikes = AS;
        Gamma       = G;
        Delta       = D;
    }

    SimResult() {
        N1Spikes    = new ArrayList<Integer>();
        N2Spikes    = new ArrayList<Integer>();
        N3Spikes    = new ArrayList<Integer>();
        N4Spikes    = new ArrayList<Integer>();
        AstroSpikes = new ArrayList<Integer>();
        Gamma       = 0;
        Delta       = 0;
    }

    /**
     * @return the N1 Spikes array
     */
    public ArrayList<Integer> N1Spikes() {
        return N1Spikes;
    }
     
    /**
     * @param N1Spikes the N1Spikes to set
     */
    public void setN1Spikes(ArrayList<Integer> N1Spikes) {
        this.N1Spikes = N1Spikes;
    }

    /**
     * @return the N2Spikes
     */
    public ArrayList<Integer> N2Spikes() {
        return N2Spikes;
    }

    /**
     * @param N2Spikes the N2Spikes to set
     */
    public void setN2Spikes(ArrayList<Integer> N2Spikes) {
        this.N2Spikes = N2Spikes;
    }

    /**
     * @return the N3Spikes
     */
    public ArrayList<Integer> N3Spikes() {
        return N3Spikes;
    }

    /**
     * @param N3Spikes the N3Spikes to set
     */
    public void setN3Spikes(ArrayList<Integer> N3Spikes) {
        this.N3Spikes = N3Spikes;
    }

    /**
     * @return the N4Spikes
     */
    public ArrayList<Integer> N4Spikes() {
        return N4Spikes;
    }

    /**
     * @param N4Spikes the N4Spikes to set
     */
    public void setN4Spikes(ArrayList<Integer> N4Spikes) {
        this.N4Spikes = N4Spikes;
    }

    /**
     * @return the AstroSpikes
     */
    public ArrayList<Integer> AstroSpikes() {
        return AstroSpikes;
    }

    /**
     * @param AstroSpikes the AstroSpikes to set
     */
    public void setAstroSpikes(ArrayList<Integer> AstroSpikes) {
        this.AstroSpikes = AstroSpikes;
    }

    /**
     * @return the Gamma
     */
    public double Gamma() {
        return Gamma;
    }

    /**
     * @param Gamma the Gamma to set
     */
    public void setGamma(double Gamma) {
        this.Gamma = Gamma;
    }

    /**
     * @return the Delta
     */
    public double Delta() {
        return Delta;
    }

    /**
     * @param Delta the Delta to set
     */
    public void setDelta(double Delta) {
        this.Delta = Delta;
    }

    /**
     * N1Spikes ++
     */
    void UpN1Spikes(Integer time) {
        this.N1Spikes.add(time);
    }

    /**
     * N2Spikes ++
     */
    void UpN2Spikes(Integer time) {
        this.N2Spikes.add(time);
    }

    /**
     * N3Spikes ++
     */
    void UpN3Spikes(Integer time) {
        this.N3Spikes.add(time);
    }

    /**
     * N4Spikes ++
     */
    void UpN4Spikes(Integer time) {
        this.N4Spikes.add(time);
    }

    /**
     * AstroSpikes ++
     */
    void UpAstroSpikes(Integer time) {
        this.AstroSpikes.add(time);
    }

}
